# -*- coding: utf-8 -*-
__author__ = 'lztkdr'
__date__ = '2020/4/3 10:41'

"""
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.set_index.html?highlight=set_index#pandas.DataFrame.set_index

简单的索引操作：
	获取index：df.index
	指定index ：df.index = ['x','y']
	重新设置index : df.reindex(list("abcedf"))
	指定某一列作为index(drop=False 作为索引后，不删除该列`) ：df.set_index("Country",drop=False)
	返回index的唯一值：df.set_index("Country").index.unique()
	
	# 设置复合索引：
		df.set_index(["Country","City"],drop=False)

"""
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Pycharm输出窗口有省略号，数据显示不全解决方法
pd.set_option('display.max_rows', 10)
pd.set_option('display.max_columns', 200)
pd.set_option('display.width', 1000)

# 如果要显示中文标题和坐标表示，需要添加以下两行代码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

print(
	"=======================================================================================================")
a = pd.DataFrame(
	{'a': range(7), 'b': range(7, 0, -1), 'c': ['one', 'one', 'one', 'two', 'two', 'two', 'two'], 'd': list("hjklmno")})
print(a)
print("========================================")
# 设置 a 、 c 列 成为索引，并且不以 因变成索引列 而 删除 数据列
a = a.set_index(['a', 'c'], drop=False)
print(a)
print("========================================")
# 复合索引的取值
# 只取其中一列
b = a['d']
print(b)
print("========================================")
# 使用其中1个索引，，当前索引只对应1个值
res = b[0]
print(type(res))
print(b[0].values)
print("========================================")
# 使用swaplevel 交换 里外层索引 位置，使用其中1个索引，当前索引对应多个值
res2 = b.swaplevel()['one']
print(type(res2))
print(res2)
print(b.swaplevel()['one'].values)
print("========================================")
# swaplevel 交换索引位置，one 是第一个索引的值，2 是第2个索引的值
print(b.swaplevel()['one'][2])




